Heroku から Render へ移行してみた
こんにちは、森田です。
以前、趣味でHerokuでアプリケーションを作っていたのですが、先日Herokuの無料利用枠がなくなるという話を耳にし、別のPaaSへの移行を行うことにしました。
無料利用枠があるPaaSを調べたところ、どうやらRenderが良さそうだったので、本記事では、Heroku から Renderへ移行についてご紹介します。
Heroku と Render
Heroku、RenderともにPaaS型のクラウドプラットフォームです。現時点での両者の比較が、Renderのwebページにありましたので気になる方は是非ご参照ください。
どちらでも似たような機能を提供しているので、どちらを利用するかは好みかなと思いますが、 私の場合は、前述したように趣味のアプリケーションをただ動作させるだけの用途なので、無料利用枠のあるRenderへ移行を行います。
移行するアプリケーションについて
MNIST(手書き文字)の認識を行うアプリケーションです。
利用している主なライブラリのバージョンはは以下の通りです。
tensorflow-cpu==2.3.0 flask==2.0.1
ネックになりそうなのは、TensorFlowです。 では、実際に試してみましょう。
Renderへデプロイするための準備
始めてRenderを利用するため、会員登録から行なっていきます。
会員登録
以下のURLから登録していきます。
https://dashboard.render.com/register
GitHubとの連携
続いて、GitHubをRenderと連携させます。 Account Settings より Connect GitHub を選択し、そのまま進めます。
デプロイするアプリケーションのプロジェクトを用意
以下のようにプロジェクトを用意します。
├── main.py ├── model.h5 ├── requirements.txt ├── static └── templates └── index.html
各ファイルは以下に配置しているのでご参照ください。
GitHubリポジトリの作成
今回のプロジェクトを管理するために、以下のリンクより新規GitHubリポジトリの作成を行います。
以下のコマンドでアプリケーションのプロジェクトのリモートリポジトリに新規リポジトリを追加します。
git init git remote add origin URL
Render上でのセットアップ
Web Serviceの作成
以下のリンクを開き、先ほど作成したリポジトリをRenderと紐付けを行います。
https://dashboard.render.com/select-repo?type=web
続いてアプリケーションの情報を入力していきます。
Name
などを入力し、Flaskアプリケーションは、一旦WSGIサーバーなしで動作させるため、以下のコマンドをStart Command
に登録します。
export FLASK_APP=main.py && flask run -h 0.0.0.0 -p 10000
デプロイしてみる
では、gitコマンドを実行してデプロイしていきます。
git add . git branch -m main git commit -m "first commit" git push origin main
正常にpushできると、Renderでもデプロイのイベントが発生します しばらく待つと、以下のようにデプロイの結果が表示されます。
あとは、アプリケーションURLにアクセスして動作を確認してみましょう。
最後に
Renderを利用してみましたが、思ったより簡単に使うことができたように感じます。 ぜひ、Herokuユーザであればすぐに使うことができると思いますので、PaaSサービスを利用する際にRenderも検討してみてはいかがでしょうか。